What is WFC (Win32 Foundation Classes)? It is a set of C++ classes built upon MFC that let you develop Win32 applications. It encapsulates different groups of API's (like the Registry) into C++ classes to reduce the learning curve. For the most part I don't want to overlap MFC in functionality. However, I have a TCP/IP socket class and so does MFC (but mine works in Console applications). I am not the author of all of the code. If I've seen code that I can use I've rolled it into WFC. There's a lot of classes that encapsulate data structures. The reason for this is my programmers are constantly having problems initializing structures that have a data member holding the size of the structure (i.e. cbSize or dwLength members). Microsoft doesn't do a real good job of pointing out that you need to set the size of data structures *before* calling API's. This leads to a lot of heartache for first-time NT programmers (in my experience). Also, all members of the structures are zeroed out before use. WFC will be extended as it is used in more and more applications. WFC contains no exception handling. Why? I hate exception handling. It is a religious issue with me. I prefer to check for failure all over the place. How much does WFC cost? Nothing. Use it any way you like. Please let me know of bugs or extensions so I can roll them into the next release. Feel free to tell me some good news too! Here's a list of the classes in WFC008 CAccessAllowedEntry - Encapsulates the ACCESS_ALLOWED_ACE structure. CAccessControlEntryHeader - Encapsulates the ACE_HEADER structure. CAccessControlList - Encapsulates the ACL structure. CAccessDeniedEntry - Encapsulates the ACCESS_DENIED_ACE structure. CAccessTimeout - Encapsulates the ACCESSTIMEOUT structure. CBitmapCoreHeader - Encapsulates the BITMAPCOREHEADER structure. CBitmapFileHeader - Encapsulates the BITMAPFILEHEADER structure. CBitmapInfoHeader - Encapsulates the BITMAPINFOHEADER structure. CCircle - Draws a circle on the screen. CCompVars - Encapsulates the COMPVARS structure. CColorAdjustment - Encapsulates the COLORADJUSTMENT structure. CDeviceControlBlock - Encapsulates DCB structure. CDocInfo - Encapsulates the DOCINFO structure. CDrawingObjectGrid - A grid of drawing objects like CCircle, etc. CDummyFile - A class that traps all calls to CFile that would blow up if you weren't a disk file. CEllipse - Draws an ellipse on the screen. CEventLog - The event logger. Makes logging easier. CFilterKeys - Encapsulates the FILTERKEYS structure. CLabeledGrid - A subclass of CDrawingObjectGrid that adds text labels to the objects. CListeningSocket - Establishes a socket that people can connect to (ie, makes a server socket) CLZFile - Unfinished class. Will be derived from CFile to handle LZFiles (compressed files). CMemoryStatus - Encapsulates the MEMORYSTATUS structure. CMouseKeys - Encapsulates the MOUSEKEYS structure. CNamedPipe - Unfinished class. Will be derived from CFile CNetwork - Base class for all networking functionality CNetworkConnectionInformation - Class based on CONNECTION_INFO_1 structure CNetworkConnections - Class that plays with network connections CNetworkFileInformation - Class based on FILE_INFO_3 structure CNetworkFiles - Class that plays with network files CNetworkResources - Class that plays with network resources CNetworkResourceInformation - Class based on NETRESOURCE structure CNetworkSessions - Class that plays with network sessions CNetworkSessionInformation - Class based on SESSION_INFO_502 structure CNetworkShareInformation - Class based on SHARE_INFO_2 structure CNetworkShares CNetWorkstation - Gathers information about the workstation COutlineTextMetric - Encapsulates the OUTLINETEXTMETRIC structure. COverlapped - Plays with OVERLAPPED structure. CPerfCounterDefinition - Encapsulates the PERF_COUNTER_DEFINITION structure. CPerfInstanceDefinition - Encapsulates the PERF_INSTANCE_DEFINITION structure. CPixelFormatDescriptor - Encapsulates the PIXELFORMATDESCRIPTOR structure. CRAS - Remote Access Services. Partially tested, it does dials phone book entries... CRASAuthenticationMessageBlock - Encapsulates the RASAMB structure. CRASInternetProtocol - Encapsulates the RASPPPIP structure. CRASInternetworkPacketExchange - Encapsulates the RASPPPIPX structure. CRASNetBEUIFramer - Encapsulates the RASPPPNBF structure. CRasterizerStatus - Encapsulates the RASTERIZER_STATUS structure. CRectangle - Draws a rectangle on the screen CRegistry - Encapsulates the Registration Database (Registry API) CRoundedRectangle - Draw a rectangle with rounded corners CSecurityAttributes - Encapsulates the SECURITY_ATTRIBUTES structure. CSecurityQualityOfService - Encapsulates the SECURITY_QUALITY_OF_SERVICE structure. CSerialFile - Treats the serial port like it was a CFile CSerialPort - Under developement. Will handle serial ports (multi-threaded). CServer - Decrypts data scrambled by NetServerGetInfo() CService - NT Services class. CServiceControlManager - Plays with the Service Control Manager. CServiceStatus - Encapsulates the ENUM_SERVICE_STATUS structure. CSessionInformation - Session iformation based on SESSION_INFO_502 structure. Basically, gives you same info as Control Panel->Server->Users->Connected Users CSimpleSocket - Base class for TCP/IP sockets. Derived from CDummyFile. CSimpleSocketFile - Turns an existing CSimpleSocket into a CFile. Generally, this is called from CListeningSocket::OnNewConnection() CSoundSentry - Encapsulates the SOUNDSENTRY structure. CSquare - Draws a square on the screen CSquiggle - A type of CRectangle that makes creating oscilliscope type displays real easy CSquiggleData - Data taken from o-scopes to be given to CSquiggle CStickyKeys - Encapsulates the STICKYKEYS structure. CSystemAuditEntry - Encapsulates the SYSTEM_AUDIT_ACE structure. CTalkingSocket - A socket you can use to connect to existing sockets (you connect to a server). CTape - Under development. Will encapsulate the Tape API. Derived from CFile... CTextMetric - Encapsulates the TEXTMETRIC structure. CToggleKeys - Encapsulates the TOGGLEKEYS structure. CUniformResourceLocator - Plays with URL's Example: http://www.microsoft.com/hello.html CUniversalNamingConvention - Plays with UNC's Example: \\buckaroo\public\neato\readme.txt CWaitCursor - Ye Olde Wait Cursor class CWindowPlacement - Encapsulates the WINDOWPLACEMENT structure. CWorkstationInformation - Patterned after WKSTA_INFO_102, used in CNetWorkstation::Enumerate CWorkstationUser - Patterned after WKSTA_USER_INFO_1, used in CNetWorkstation::Enumerate Miscellaneous Functions: Convert_NERR_Code_to_String - Converts NERR_* error codes to text; the FormatMessage() trick doesn't work on these error codes What's New in Release 008: CLZFile - Handles the LZxxx API Bug Fixes in Release 008: Sam Blackburn CI$: 76300,326 Internet: sammy@sed.csc.com